<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<TITLE>
JpegSegmentReader (Metadata-Extractor - JavaDoc - An Open Source Java Library for Image File Metadata)
</TITLE>

<META NAME="keywords" CONTENT="com.drew.imaging.jpeg.JpegSegmentReader class">

<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    parent.document.title="JpegSegmentReader (Metadata-Extractor - JavaDoc - An Open Source Java Library for Image File Metadata)";
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/JpegSegmentReader.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
<a href='http://www.drewnoakes.com/code/exif/' title='Go to the project home page.'><img src='http://metadata-extractor.googlecode.com/git/Resources/metadata-extractor-logo-131x30.png' border=0 alt='Metadata Extractor Logo'></a></EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../com/drew/imaging/jpeg/JpegSegmentData.html" title="class in com.drew.imaging.jpeg"><B>PREV CLASS</B></A>&nbsp;
&nbsp;NEXT CLASS</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?com/drew/imaging/jpeg/JpegSegmentReader.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="JpegSegmentReader.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
com.drew.imaging.jpeg</FONT>
<BR>
Class JpegSegmentReader</H2>
<PRE>
java.lang.Object
  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.drew.imaging.jpeg.JpegSegmentReader</B>
</PRE>
<HR>
<DL>
<DT><PRE>public class <B>JpegSegmentReader</B><DT>extends java.lang.Object</DL>
</PRE>

<P>
Performs read functions of Jpeg files, returning specific file segments.
<P>

<P>
<DL>
<DT><B>Author:</B></DT>
  <DD>Drew Noakes http://drewnoakes.com</DD>
</DL>
<HR>

<P>
<!-- =========== FIELD SUMMARY =========== -->

<A NAME="field_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Field Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;byte</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/drew/imaging/jpeg/JpegSegmentReader.html#SEGMENT_APP0">SEGMENT_APP0</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;APP0 Jpeg segment identifier -- JFIF data (also JFXX apparently).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;byte</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/drew/imaging/jpeg/JpegSegmentReader.html#SEGMENT_APP1">SEGMENT_APP1</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;APP1 Jpeg segment identifier -- where Exif data is kept.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;byte</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/drew/imaging/jpeg/JpegSegmentReader.html#SEGMENT_APP2">SEGMENT_APP2</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;APP2 Jpeg segment identifier.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;byte</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/drew/imaging/jpeg/JpegSegmentReader.html#SEGMENT_APP3">SEGMENT_APP3</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;APP3 Jpeg segment identifier.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;byte</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/drew/imaging/jpeg/JpegSegmentReader.html#SEGMENT_APP4">SEGMENT_APP4</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;APP4 Jpeg segment identifier.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;byte</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/drew/imaging/jpeg/JpegSegmentReader.html#SEGMENT_APP5">SEGMENT_APP5</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;APP5 Jpeg segment identifier.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;byte</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/drew/imaging/jpeg/JpegSegmentReader.html#SEGMENT_APP6">SEGMENT_APP6</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;APP6 Jpeg segment identifier.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;byte</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/drew/imaging/jpeg/JpegSegmentReader.html#SEGMENT_APP7">SEGMENT_APP7</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;APP7 Jpeg segment identifier.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;byte</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/drew/imaging/jpeg/JpegSegmentReader.html#SEGMENT_APP8">SEGMENT_APP8</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;APP8 Jpeg segment identifier.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;byte</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/drew/imaging/jpeg/JpegSegmentReader.html#SEGMENT_APP9">SEGMENT_APP9</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;APP9 Jpeg segment identifier.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;byte</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/drew/imaging/jpeg/JpegSegmentReader.html#SEGMENT_APPA">SEGMENT_APPA</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;APPA (App10) Jpeg segment identifier -- can hold Unicode comments.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;byte</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/drew/imaging/jpeg/JpegSegmentReader.html#SEGMENT_APPB">SEGMENT_APPB</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;APPB (App11) Jpeg segment identifier.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;byte</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/drew/imaging/jpeg/JpegSegmentReader.html#SEGMENT_APPC">SEGMENT_APPC</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;APPC (App12) Jpeg segment identifier.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;byte</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/drew/imaging/jpeg/JpegSegmentReader.html#SEGMENT_APPD">SEGMENT_APPD</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;APPD (App13) Jpeg segment identifier -- IPTC data in here.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;byte</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/drew/imaging/jpeg/JpegSegmentReader.html#SEGMENT_APPE">SEGMENT_APPE</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;APPE (App14) Jpeg segment identifier.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;byte</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/drew/imaging/jpeg/JpegSegmentReader.html#SEGMENT_APPF">SEGMENT_APPF</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;APPF (App15) Jpeg segment identifier.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;byte</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/drew/imaging/jpeg/JpegSegmentReader.html#SEGMENT_COM">SEGMENT_COM</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Jpeg comment segment identifier.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;byte</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/drew/imaging/jpeg/JpegSegmentReader.html#SEGMENT_DHT">SEGMENT_DHT</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Define Huffman Table segment identifier.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;byte</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/drew/imaging/jpeg/JpegSegmentReader.html#SEGMENT_DQT">SEGMENT_DQT</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Define Quantization Table segment identifier.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;byte</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/drew/imaging/jpeg/JpegSegmentReader.html#SEGMENT_SOF0">SEGMENT_SOF0</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Start-of-Frame Zero segment identifier.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;byte</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/drew/imaging/jpeg/JpegSegmentReader.html#SEGMENT_SOI">SEGMENT_SOI</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Start Of Image segment identifier.</TD>
</TR>
</TABLE>
&nbsp;
<!-- ======== CONSTRUCTOR SUMMARY ======== -->

<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../com/drew/imaging/jpeg/JpegSegmentReader.html#JpegSegmentReader(byte[])">JpegSegmentReader</A></B>(byte[]&nbsp;fileContents)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a JpegSegmentReader for a byte array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../com/drew/imaging/jpeg/JpegSegmentReader.html#JpegSegmentReader(java.io.File)">JpegSegmentReader</A></B>(java.io.File&nbsp;file)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a JpegSegmentReader for a specific file.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../com/drew/imaging/jpeg/JpegSegmentReader.html#JpegSegmentReader(java.io.InputStream, boolean)">JpegSegmentReader</A></B>(java.io.InputStream&nbsp;inputStream,
                  boolean&nbsp;waitForBytes)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a JpegSegmentReader for an InputStream.</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/drew/imaging/jpeg/JpegSegmentReader.html#getSegmentCount(byte)">getSegmentCount</A></B>(byte&nbsp;segmentMarker)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the number of segments having the specified JPEG segment marker.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../com/drew/imaging/jpeg/JpegSegmentData.html" title="class in com.drew.imaging.jpeg">JpegSegmentData</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/drew/imaging/jpeg/JpegSegmentReader.html#getSegmentData()">getSegmentData</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the JpegSegmentData object used by this reader.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;byte[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/drew/imaging/jpeg/JpegSegmentReader.html#readSegment(byte)">readSegment</A></B>(byte&nbsp;segmentMarker)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reads the first instance of a given Jpeg segment, returning the contents as
 a byte array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;byte[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/drew/imaging/jpeg/JpegSegmentReader.html#readSegment(byte, int)">readSegment</A></B>(byte&nbsp;segmentMarker,
            int&nbsp;occurrence)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reads the Nth instance of a given Jpeg segment, returning the contents as a byte array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Iterable&lt;byte[]&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/drew/imaging/jpeg/JpegSegmentReader.html#readSegments(byte)">readSegments</A></B>(byte&nbsp;segmentMarker)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all instances of a given Jpeg segment.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ============ FIELD DETAIL =========== -->

<A NAME="field_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Field Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="SEGMENT_APP0"><!-- --></A><H3>
SEGMENT_APP0</H3>
<PRE>
public static final byte <B>SEGMENT_APP0</B></PRE>
<DL>
<DD>APP0 Jpeg segment identifier -- JFIF data (also JFXX apparently).
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.drew.imaging.jpeg.JpegSegmentReader.SEGMENT_APP0">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="SEGMENT_APP1"><!-- --></A><H3>
SEGMENT_APP1</H3>
<PRE>
public static final byte <B>SEGMENT_APP1</B></PRE>
<DL>
<DD>APP1 Jpeg segment identifier -- where Exif data is kept.  XMP data is also kept in here, though usually in a second instance.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.drew.imaging.jpeg.JpegSegmentReader.SEGMENT_APP1">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="SEGMENT_APP2"><!-- --></A><H3>
SEGMENT_APP2</H3>
<PRE>
public static final byte <B>SEGMENT_APP2</B></PRE>
<DL>
<DD>APP2 Jpeg segment identifier.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.drew.imaging.jpeg.JpegSegmentReader.SEGMENT_APP2">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="SEGMENT_APP3"><!-- --></A><H3>
SEGMENT_APP3</H3>
<PRE>
public static final byte <B>SEGMENT_APP3</B></PRE>
<DL>
<DD>APP3 Jpeg segment identifier.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.drew.imaging.jpeg.JpegSegmentReader.SEGMENT_APP3">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="SEGMENT_APP4"><!-- --></A><H3>
SEGMENT_APP4</H3>
<PRE>
public static final byte <B>SEGMENT_APP4</B></PRE>
<DL>
<DD>APP4 Jpeg segment identifier.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.drew.imaging.jpeg.JpegSegmentReader.SEGMENT_APP4">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="SEGMENT_APP5"><!-- --></A><H3>
SEGMENT_APP5</H3>
<PRE>
public static final byte <B>SEGMENT_APP5</B></PRE>
<DL>
<DD>APP5 Jpeg segment identifier.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.drew.imaging.jpeg.JpegSegmentReader.SEGMENT_APP5">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="SEGMENT_APP6"><!-- --></A><H3>
SEGMENT_APP6</H3>
<PRE>
public static final byte <B>SEGMENT_APP6</B></PRE>
<DL>
<DD>APP6 Jpeg segment identifier.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.drew.imaging.jpeg.JpegSegmentReader.SEGMENT_APP6">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="SEGMENT_APP7"><!-- --></A><H3>
SEGMENT_APP7</H3>
<PRE>
public static final byte <B>SEGMENT_APP7</B></PRE>
<DL>
<DD>APP7 Jpeg segment identifier.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.drew.imaging.jpeg.JpegSegmentReader.SEGMENT_APP7">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="SEGMENT_APP8"><!-- --></A><H3>
SEGMENT_APP8</H3>
<PRE>
public static final byte <B>SEGMENT_APP8</B></PRE>
<DL>
<DD>APP8 Jpeg segment identifier.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.drew.imaging.jpeg.JpegSegmentReader.SEGMENT_APP8">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="SEGMENT_APP9"><!-- --></A><H3>
SEGMENT_APP9</H3>
<PRE>
public static final byte <B>SEGMENT_APP9</B></PRE>
<DL>
<DD>APP9 Jpeg segment identifier.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.drew.imaging.jpeg.JpegSegmentReader.SEGMENT_APP9">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="SEGMENT_APPA"><!-- --></A><H3>
SEGMENT_APPA</H3>
<PRE>
public static final byte <B>SEGMENT_APPA</B></PRE>
<DL>
<DD>APPA (App10) Jpeg segment identifier -- can hold Unicode comments.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.drew.imaging.jpeg.JpegSegmentReader.SEGMENT_APPA">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="SEGMENT_APPB"><!-- --></A><H3>
SEGMENT_APPB</H3>
<PRE>
public static final byte <B>SEGMENT_APPB</B></PRE>
<DL>
<DD>APPB (App11) Jpeg segment identifier.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.drew.imaging.jpeg.JpegSegmentReader.SEGMENT_APPB">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="SEGMENT_APPC"><!-- --></A><H3>
SEGMENT_APPC</H3>
<PRE>
public static final byte <B>SEGMENT_APPC</B></PRE>
<DL>
<DD>APPC (App12) Jpeg segment identifier.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.drew.imaging.jpeg.JpegSegmentReader.SEGMENT_APPC">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="SEGMENT_APPD"><!-- --></A><H3>
SEGMENT_APPD</H3>
<PRE>
public static final byte <B>SEGMENT_APPD</B></PRE>
<DL>
<DD>APPD (App13) Jpeg segment identifier -- IPTC data in here.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.drew.imaging.jpeg.JpegSegmentReader.SEGMENT_APPD">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="SEGMENT_APPE"><!-- --></A><H3>
SEGMENT_APPE</H3>
<PRE>
public static final byte <B>SEGMENT_APPE</B></PRE>
<DL>
<DD>APPE (App14) Jpeg segment identifier.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.drew.imaging.jpeg.JpegSegmentReader.SEGMENT_APPE">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="SEGMENT_APPF"><!-- --></A><H3>
SEGMENT_APPF</H3>
<PRE>
public static final byte <B>SEGMENT_APPF</B></PRE>
<DL>
<DD>APPF (App15) Jpeg segment identifier.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.drew.imaging.jpeg.JpegSegmentReader.SEGMENT_APPF">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="SEGMENT_SOI"><!-- --></A><H3>
SEGMENT_SOI</H3>
<PRE>
public static final byte <B>SEGMENT_SOI</B></PRE>
<DL>
<DD>Start Of Image segment identifier.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.drew.imaging.jpeg.JpegSegmentReader.SEGMENT_SOI">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="SEGMENT_DQT"><!-- --></A><H3>
SEGMENT_DQT</H3>
<PRE>
public static final byte <B>SEGMENT_DQT</B></PRE>
<DL>
<DD>Define Quantization Table segment identifier.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.drew.imaging.jpeg.JpegSegmentReader.SEGMENT_DQT">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="SEGMENT_DHT"><!-- --></A><H3>
SEGMENT_DHT</H3>
<PRE>
public static final byte <B>SEGMENT_DHT</B></PRE>
<DL>
<DD>Define Huffman Table segment identifier.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.drew.imaging.jpeg.JpegSegmentReader.SEGMENT_DHT">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="SEGMENT_SOF0"><!-- --></A><H3>
SEGMENT_SOF0</H3>
<PRE>
public static final byte <B>SEGMENT_SOF0</B></PRE>
<DL>
<DD>Start-of-Frame Zero segment identifier.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.drew.imaging.jpeg.JpegSegmentReader.SEGMENT_SOF0">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="SEGMENT_COM"><!-- --></A><H3>
SEGMENT_COM</H3>
<PRE>
public static final byte <B>SEGMENT_COM</B></PRE>
<DL>
<DD>Jpeg comment segment identifier.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.drew.imaging.jpeg.JpegSegmentReader.SEGMENT_COM">Constant Field Values</A></DL>
</DL>

<!-- ========= CONSTRUCTOR DETAIL ======== -->

<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="JpegSegmentReader(java.io.File)"><!-- --></A><H3>
JpegSegmentReader</H3>
<PRE>
public <B>JpegSegmentReader</B>(java.io.File&nbsp;file)
                  throws <A HREF="../../../../com/drew/imaging/jpeg/JpegProcessingException.html" title="class in com.drew.imaging.jpeg">JpegProcessingException</A>,
                         java.io.IOException</PRE>
<DL>
<DD>Creates a JpegSegmentReader for a specific file.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>file</CODE> - the Jpeg file to read segments from
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../com/drew/imaging/jpeg/JpegProcessingException.html" title="class in com.drew.imaging.jpeg">JpegProcessingException</A></CODE>
<DD><CODE>java.io.IOException</CODE></DL>
</DL>
<HR>

<A NAME="JpegSegmentReader(byte[])"><!-- --></A><H3>
JpegSegmentReader</H3>
<PRE>
public <B>JpegSegmentReader</B>(byte[]&nbsp;fileContents)
                  throws <A HREF="../../../../com/drew/imaging/jpeg/JpegProcessingException.html" title="class in com.drew.imaging.jpeg">JpegProcessingException</A></PRE>
<DL>
<DD>Creates a JpegSegmentReader for a byte array.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>fileContents</CODE> - the byte array containing Jpeg data
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../com/drew/imaging/jpeg/JpegProcessingException.html" title="class in com.drew.imaging.jpeg">JpegProcessingException</A></CODE></DL>
</DL>
<HR>

<A NAME="JpegSegmentReader(java.io.InputStream, boolean)"><!-- --></A><H3>
JpegSegmentReader</H3>
<PRE>
public <B>JpegSegmentReader</B>(java.io.InputStream&nbsp;inputStream,
                         boolean&nbsp;waitForBytes)
                  throws <A HREF="../../../../com/drew/imaging/jpeg/JpegProcessingException.html" title="class in com.drew.imaging.jpeg">JpegProcessingException</A></PRE>
<DL>
<DD>Creates a JpegSegmentReader for an InputStream.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>inputStream</CODE> - the InputStream containing Jpeg data
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../com/drew/imaging/jpeg/JpegProcessingException.html" title="class in com.drew.imaging.jpeg">JpegProcessingException</A></CODE></DL>
</DL>

<!-- ============ METHOD DETAIL ========== -->

<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="readSegment(byte)"><!-- --></A><H3>
readSegment</H3>
<PRE>
public byte[] <B>readSegment</B>(byte&nbsp;segmentMarker)</PRE>
<DL>
<DD>Reads the first instance of a given Jpeg segment, returning the contents as
 a byte array.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>segmentMarker</CODE> - the byte identifier for the desired segment
<DT><B>Returns:</B><DD>the byte array if found, else null</DL>
</DD>
</DL>
<HR>

<A NAME="readSegment(byte, int)"><!-- --></A><H3>
readSegment</H3>
<PRE>
public byte[] <B>readSegment</B>(byte&nbsp;segmentMarker,
                          int&nbsp;occurrence)</PRE>
<DL>
<DD>Reads the Nth instance of a given Jpeg segment, returning the contents as a byte array.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>segmentMarker</CODE> - the byte identifier for the desired segment<DD><CODE>occurrence</CODE> - the occurrence of the specified segment within the jpeg file
<DT><B>Returns:</B><DD>the byte array if found, else null</DL>
</DD>
</DL>
<HR>

<A NAME="readSegments(byte)"><!-- --></A><H3>
readSegments</H3>
<PRE>
public java.lang.Iterable&lt;byte[]&gt; <B>readSegments</B>(byte&nbsp;segmentMarker)</PRE>
<DL>
<DD>Returns all instances of a given Jpeg segment.  If no instances exist, an empty sequence is returned.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>segmentMarker</CODE> - a number which identifies the type of Jpeg segment being queried
<DT><B>Returns:</B><DD>zero or more byte arrays, each holding the data of a Jpeg segment</DL>
</DD>
</DL>
<HR>

<A NAME="getSegmentCount(byte)"><!-- --></A><H3>
getSegmentCount</H3>
<PRE>
public final int <B>getSegmentCount</B>(byte&nbsp;segmentMarker)</PRE>
<DL>
<DD>Returns the number of segments having the specified JPEG segment marker.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>segmentMarker</CODE> - the JPEG segment identifying marker.
<DT><B>Returns:</B><DD>the count of matching segments.</DL>
</DD>
</DL>
<HR>

<A NAME="getSegmentData()"><!-- --></A><H3>
getSegmentData</H3>
<PRE>
public final <A HREF="../../../../com/drew/imaging/jpeg/JpegSegmentData.html" title="class in com.drew.imaging.jpeg">JpegSegmentData</A> <B>getSegmentData</B>()</PRE>
<DL>
<DD>Returns the JpegSegmentData object used by this reader.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the JpegSegmentData object.</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>


<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/JpegSegmentReader.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
<a href='http://www.drewnoakes.com/code/exif/' title='Go to the project home page.'><img src='http://metadata-extractor.googlecode.com/git/Resources/metadata-extractor-logo-131x30.png' border=0 alt='Metadata Extractor Logo'></a></EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../com/drew/imaging/jpeg/JpegSegmentData.html" title="class in com.drew.imaging.jpeg"><B>PREV CLASS</B></A>&nbsp;
&nbsp;NEXT CLASS</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?com/drew/imaging/jpeg/JpegSegmentReader.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="JpegSegmentReader.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>
<i>Copyright &#169; 2003-2012 Drew Noakes. All Rights Reserved.</i>
<script src='http://www.google-analytics.com/urchin.js' type='text/javascript'></script>
<script type='text/javascript'>
_uacct = 'UA-936661-1';
urchinTracker();
</script>
</BODY>
</HTML>
